「詠唱」的藝術擁有操縱現實本質的力量,我發現了一種被稱為「tiktoken」的魔法元素。這個元素,看似平凡,卻是理解和掌握這個世界的詠唱藝術的關鍵。
Tiktoken是由一個名為OpenAI的神秘實體創建的快速開源分詞器。它能夠將文本字符串分割成一系列的tokens,這些tokens是這個世界的魔法實體——GPT模型理解的基本文本單位。知道一個文本字符串中有多少tokens是至關重要的,因為它決定了字符串是否對一個文本模型來說太長而無法處理,也影響了調用OpenAI API的能力的成本。
Tiktoken支持OpenAI模型使用的三種編碼:cl100k_base,p50k_base和r50k_base(或gpt2)。這些編碼規定了文本如何轉換成tokens,不同的模型使用不同的編碼。例如,cl100k_base由gpt-4和gpt-3.5-turbo模型使用,而p50k_base由Codex模型使用。
在英語中,tokens通常的長度範圍從一個字符到一個單詞,但在一些語言中,tokens可以更短或更長。空格通常與單詞的開頭組合在一起。可以使用OpenAI Tokenizer或第三方Tiktokenizer webapp體驗分詞的過程。
要掌握tiktoken的力量,首先必須使用pip進行安裝。安裝後,可以使用tiktoken.get_encoding()加載一個編碼,然後使用encoding.encode()將文本轉換成tokens。可以通過計算.encode()返回的列表的長度來計算tokens的數量。
在這個世界中,像gpt-3.5-turbo和gpt-4這樣的ChatGPT模型以與較老的completions模型相同的方式使用tokens。然而,由於它們的基於消息的格式,計算一個對話將使用多少tokens變得更加困難。tiktoken文檔中提供了一個示例函數,用於計算傳遞給gpt-3.5-turbo或gpt-4的消息的tokens數量。